var path = require("path");
var userDao = require(path.join(process.cwd(), "dao/userDao"));
var Password = require("node-php-password");
var logger = require("../modules/logger").logger();

/**
 * 创建普通用户
 *
 * @param  {[type]}   user 用户数据集
 * @param  {Function} cb   回调函数
 */
module.exports.createUser = function (params, cb) {
  userDao.exists(params.openId, function (err, isExists) {
    if (err) return cb(err);
	console.log(isExists);
    if (isExists) {
      return cb("用户名已存在");
    }

    userDao.create(
      {
        qq_open_id: params.openId,
        password: Password.hash("123456"), //微信登录统一生成123456 密码
        username: params.nickName,
        create_time: Date.parse(new Date()) / 1000,
        role_id: 0,
      },
      function (err, manager) {
        if (err) return cb("创建失败");
        result = {
          qq_open_id: params.openId,
          password: Password.hash("123456"), //微信登录统一生成123456 密码
          username: params.username,
          create_time: Date.parse(new Date()) / 1000,
          role_id: 0,
		  id: manager.user_id,
        };
        cb(null, result);
      }
    );
  });
};

/**
 * 更新管理员信息
 *
 * @param  {[type]}   params 管理员信息
 * @param  {Function} cb     回调函数
 */
module.exports.updateUser = function (params, cb) {
  userDao.update(
    {
      user_id: params.user_id,
      password: Password.hash(params.password), //微信登录统一生成123456 密码
      user_sex: params.sex,
      user_email: params.email,
      user_xueli: params.xueli,
    },
    function (err, manager) {
      if (err) return cb(err);
      cb(null, {
        user_id: manager.user_id,
        password:Password.hash(params.password),
        sex: manager.user_sex,
        xueli: manager.user_xueli,
        email: manager.user_email,
      });
    }
  );
};

/**
 * 判断是否存在该用户
 *
 * @param  {[type]}   username 用户名
 * @param  {Function} cb       回调函数
 *
 */
module.exports.exists = function (username, cb) {
  var db = databaseModule.getDatabase();
  var Model = db.models.UserModel;
  Model.exists({ qq_open_id: username }, function (err, isExists) {
    if (err) return cb("查询失败");
    cb(null, isExists);
  });
};


/**
 * 普通用户登录
 * @param  {[type]}   username 用户名
 * @param  {[type]}   password 密码
 * @param  {Function} cb       回调
 */
module.exports.login = function(qq_open_id,cb) {
	logger.debug('login => qq_open_id:%s,password:%s',qq_open_id,"123456");
	logger.debug(qq_open_id);
	console.log(qq_open_id);
	userDao.findOne({"qq_open_id":qq_open_id},function(err,manager) {
		logger.debug(err);	
		if(err || !manager) return cb("用户名不存在");
		if(manager.role_id < 0) {
			return cb("该用户没有权限登录");
		}

		if(manager.role_id != 0) {
			return cb("该用户已经被禁用");
		}

		cb(
			null,
			{
				"qq_open_id":manager.qq_open_id,
				"rid":manager.role_id,
				"username":manager.username,
				"create_time":manager.create_time,
				"id":manager.user_id
			}
		);
	});
}
